Framework / Layouts / Table Flow Layout
In This Topic
    Table Flow Layout
    In This Topic

    The table flow layout is represented by the NTableFlowLayout class. The table flow layout places the boxes one after the other in lanes. All lanes are having a user specified number of maximum boxes. The boxes insides the lanes are arranged to preserve tabular metrics (i.e. are arranged in a virtual table).

     Direction

    The table flow layout is a directed box layout, which places the cells in lanes, which flow in the current layout direction. The layout direction is controlled by the Direction property, which takes values from the ENHVDirection enumeration:

    ENHVDirection Description
    TopToBottom The layout is directed vertically, starting from the top and expanding downwards.
    BottomToTop The layout is directed vertically, starting from the bottom and expanding upwards.
    LeftToRight The layout is directed horizontally, starting from the left and expanding to the right.
    RightToLeft The layout is directed horizontally, starting from the right and expanding to the left.

    Additionally, the Inverted property specifies whether the lanes are layouted from the first to the last (the default) or from the last to the first (inverted). By default this property is set to false.

     Spacing
    Depending on the layout direction the layout uses the HorizontalSpacing and VerticalSpacing to determine the minimal spacing between the virtual table cells and the spacing between the lanes. For a left-to-right direction the horizontal spacing is the minimal horizontal spacing between the virtual table cells, while lanes are spaced with the specified vertical spacing.
     Max Ordinal

    The layout arranges the boxes in a virtual table, the rows and cols of which are implicitly defined by a max ordinal (through the MaxOrdinal property) and the arranged objects count.

    When the layout direction is horizontal (e.g. LeftToRight or RightToLeft), the MaxOrdinal property specifies the maximum number of columns in the table. The table layout generates as many rows as needed to arrange all objects.

    Analogously when the layout direction is vertical (e.g. TopToBottom or BottomToTop), the MaxOrdinal specifies the maximum number of rows, and the layout generates as many columns as needed.

    Both the rows and the columns generated by the layout can be considered as stacks and are hence subject to stack arrangement.

     Filling and Fitting

    Both the rows and the columns generated by the layout can be considered as stacks and are hence subject to stack arrangement.

    The way in which the table layout tries to fit/fill the available layout area, in the horizontal (columns) and vertical(rows) dimensions is controlled by the RowFitMode/RowFillMode and ColFitMode/ColFillMode properties respectively.

    ENStackFitMode Description
    None The stack does not attempt to fit the available area. This is the default value.
    Equal The stack decreases the items size with equal to fit the available area.
    Proportional The stack decreases the items size with proportional amounts to fit the available area.
    First The stack decreases the items size in forward order until the stack fits the available area.
    Last The stack decreases the items size in reverse order until the stack fits the available area.
    ENStackFillMode Description
    None The stack does not attempt to fill the available area. This is the default value.
    Equal The stack increases the items size with equal amounts to fill the available area.
    Proportional The stack increases the items size with proportional amounts to fill the available area.
    First The stack increases the items size in forward order until the stack fills the available area.
    Last The stack increases the items size in reverse order until the stack fills the available area.
    Justify The stack increases the spacing between the items to fill the available area.
    See Also